﻿// Inner Fire 游戏引擎库
// DxUI 渲染器UI功能
//
// Copyright (c) 2025 by 尔西大帝. All rights reserved.
//
// 用于DirectX的渲染器。
// 此文件分装用于UI功能
//
// Author: 尔西大帝
// Email: 2670613871@qq.com
// Created: 2025-04-24

#pragma once

#include "dx_module.h"
#include <dx/ui/ui_mesh_manager.h>
#include <dx/texture/ui_depth_map.h>
#include <memory>

namespace ifire::dx {
class DxUI : public DxModule {
public:
  DxUI(DxGraphics* dx);
  DxUI(const DxUI& rhs) = delete;
  DxUI& operator=(const DxUI& rhs) = delete;
  ~DxUI() = default;

  void Init();
  void OnResize();

  // ------
  // 属性访问
  // ------
  UIMeshManager* GetMesh() { return uimesh_.get(); }
  UIDepthMap* GetDepthMap() { return ui_depth_map_.get(); }

private:
  
  // 用于UI
  std::unique_ptr<UIMeshManager> uimesh_;
  std::unique_ptr<UIDepthMap> ui_depth_map_;
};

} // namespace ifire::dx